﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Eloje_Data;
using eLoje_Model;

namespace ELoje_web
{
    public partial class NovoFornecedor : System.Web.UI.Page
    {
        //seta o estado se São Paulo como default
        private const int SAO_PAULO = 24;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["codFornecedor"] != null)
                {
                    int codFornecedor = Convert.ToInt32(Session["codFornecedor"].ToString());
                    loadFornecedor(codFornecedor);
                    setEditMode(false);
                }
                else
                {
                    setEditMode(true);
                }
                applyText();
                navigationHistory();
            }
        }

        protected void lnkLog_Click(object sender, EventArgs e)
        {

        }

        private void applyText()
        {
            loadEstados();
            btnSalvar.Text = " Salvar ";
            btnCancelar.Text = " Cancelar ";
            btnEditar.Text = " Editar ";
        }

        private void navigationHistory()
        {
            lblHistoryNavigation.Text = String.Format("{0} >> {1} >> {2} >> ", "Cockpit", "Cadastros", "Fornecedores");
            lblThisPage.Text = "Novo Fornecedor";

        }

        //carrega os dados do fornecedor
        private void loadFornecedor(int codFornecedor)
        {
            FornecedorDA da = new FornecedorDA();
            FornecedorVO vo = da.getFornecedor(codFornecedor);

            hdnCodFornecedor.Value = vo.COD_FORNECEDOR.ToString();
            lblBairro.Text = vo.BAIRRO;
            lblCep.Text = vo.CEP;
            lblCidade.Text = vo.CIDADE;
            lblCnpj.Text = vo.CNPJ;
            lblComplemento.Text = vo.COMPLEMENTO;
            lblddd.Text = vo.DDD;
            lblEmail.Text = vo.EMAIL;
            lblIE.Text = vo.IE;
            lblIM.Text = vo.IM;
            lblNomeFantasia.Text  = vo.NOMEFANTASIA;
            lblNumero.Text = vo.NUMERO;
            lblRazaoSocial.Text = vo.RAZAOSOCIAL;
            lblRua.Text = vo.RUA;
            lblSite.Text = vo.SITE;
            lblTelefone.Text = vo.TELEFONE;
            lblEstado.Text = vo.ESTADO.SIGLA;
        }

        //carrega o combobox de estados
        public void loadEstados()
        {
            EstadoDA da = new EstadoDA();
            ddlEstado.DataSource = da.getEstados();
            ddlEstado.DataTextField = "NOME_ESTADO";
            ddlEstado.DataValueField = "COD_ESTADO";
            ddlEstado.DataBind();
            ddlEstado.SelectedIndex = SAO_PAULO;
        }

        //habilita a página para a edição dos dados
        private void setEditMode(bool mode)
        {
            txtBairro.Visible = mode;
            lblBairro.Visible = mode ? false : true;
            txtCep.Visible = mode;
            lblCep.Visible = mode ? false : true;
            txtCidade.Visible = mode;
            lblCidade.Visible = mode ? false : true;
            txtCnpj.Visible = mode;
            lblCnpj.Visible = mode ? false : true;
            txtComplemento.Visible = mode;
            lblComplemento.Visible = mode ? false : true;
            txtddd.Visible = mode;
            lblddd.Visible = mode ? false : true;
            txtEmail.Visible = mode;
            lblEmail.Visible = mode ? false : true;
            txtIE.Visible = mode;
            lblIE.Visible = mode ? false : true;
            txtIM.Visible = mode;
            lblIM.Visible = mode ? false : true;
            txtNomeFantasia.Visible = mode;
            lblNomeFantasia.Visible = mode ? false : true;
            txtNumero.Visible = mode;
            lblNumero.Visible = mode ? false : true;
            txtRazaoSocial.Visible = mode;
            lblRazaoSocial.Visible = mode ? false : true;
            txtRua.Visible = mode;
            lblRua.Visible = mode ? false : true;
            txtSite.Visible = mode;
            lblSite.Visible = mode ? false : true;
            txtTelefone.Visible = mode;
            lblTelefone.Visible = mode ? false : true;
            ddlEstado.Visible = mode;
            lblEstado.Visible = mode ? false : true;
            btnEditar.Visible = mode;
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            FornecedorVO vo = new FornecedorVO();
            EstadoVO estado = new  EstadoVO();

            vo.BAIRRO = txtBairro.Text;
            vo.CEP = txtCep.Text;
            vo.CIDADE = txtCidade.Text;
            vo.CNPJ = txtCnpj.Text;

            if(!String.IsNullOrEmpty(hdnCodFornecedor.Value))
            vo.COD_FORNECEDOR = Convert.ToInt32(hdnCodFornecedor.Value.ToString());

            vo.COMPLEMENTO = txtComplemento.Text;
            vo.DDD = txtddd.Text;
            vo.EMAIL = txtEmail.Text;
            
            vo.IE = txtIE.Text;
            vo.IM = txtIM.Text;
            vo.NOMEFANTASIA = txtNomeFantasia.Text;
            vo.NUMERO = txtNumero.Text;
            vo.RAZAOSOCIAL = txtRazaoSocial.Text;
            vo.RUA = txtRua.Text;
            vo.SITE = txtSite.Text;
            vo.TELEFONE = txtTelefone.Text;

            estado.COD_ESTADO = Convert.ToInt32(ddlEstado.SelectedValue);
            vo.ESTADO = estado;

            FornecedorDA da = new FornecedorDA();
            
            da.novoFornecedor(vo, "desenv");

            Response.Redirect("~/Default.aspx");
        }
    }
}